package com.nwpu.bigdata.service;

import java.util.List;
import java.util.Map;

import com.nwpu.bigdata.model.FaultKeyExtend;
import org.joda.time.DateTime;

import com.nwpu.bigdata.dto.BackendResult;
import com.nwpu.bigdata.exception.NoLogExcetion;
import com.nwpu.bigdata.model.ExceptLog;

/**
 *  elastic日志服务接口，通过用户指定得到特定的日志信息，并提供存入mysql数据库的方法
 * @author carlin
 *
 */
public interface ESLogService {
	/**
	 * 将日志写入mysql数据库中
	 * @param index ES中需要检索的日志索引
	 * @param type ES中需要检索的日志类型
	 * @param faultKeyExtend ES中需要检索的日志关键字
	 * @param includes ES中取回的数据需要包括的字段
	 * @param excludes ES中取回的数据需要排除的字段
	 * @return 写入状态，true代表写入成功，false代表写入失败
	 */
	public boolean writeLogToDB(String index, String type, FaultKeyExtend faultKeyExtend, String[] includes, String[] excludes)  throws NoLogExcetion;
	
	/**
	 * 得到用户指定筛选的日志信息
	 * @return 
	 */
	public BackendResult<List<ExceptLog>> getAssignLogByUser(String index, String type, Map<String, String[]> conditions, DateTime startTime, DateTime endTime, FaultKeyExtend faultKeyExtend);
}
